import CryptoJS from 'crypto-js/crypto-js'

export function encryption(data) {
  // let strs = [];
  // for (let i in data) {
  //   strs.push(i + '=' + data[i]);
  // }
  // strs.sort(); // 数组排序
  // strs = strs.join('&'); // 数组变字符串
  // let endData = strs + '&sign=' + CryptoJS.MD5(strs + 'ADfj3kcadc2349akvm1CPFFCD84f')
  //   .toString(); // MD5加密
  let key = CryptoJS.enc.Utf8.parse("1234567890123456"); // 加密秘钥
  let iv = CryptoJS.enc.Utf8.parse("0102030405060708"); //  矢量
  let postStr = CryptoJS.enc.Utf8.parse(JSON.stringify(data));

  let postObj = CryptoJS.AES.encrypt(postStr, key, { //  AES加密
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7 // 后台用的是pad.Pkcs5,前台对应为Pkcs7
  });
  //因为符号“+”和符号“/”是不允许出现在URL中的,于是采用“%2B”和“%2F”符号取代。
  //postStr = postObj.ciphertext.toString(CryptoJS.enc.Base64).replace(/\+/g, "%2B").replace(/\//g, "%2F");
  postStr = encodeURIComponent(postObj.ciphertext.toString(CryptoJS.enc.Base64));
  //let poststr =  encodeURIComponent(CryptoJS.enc.Base64.stringify(encryptResult.ciphertext)).replace(/\+/g, "%2B");
  //let poststr =  CryptoJS.enc.Base64.stringify(encryptResult.ciphertext).replace(/\+/g, "%2B");;// Base64加密再 encode;
  return postStr;
}

export function decryption(data) {
    let key = CryptoJS.enc.Utf8.parse("1234567890123456");  // 加密秘钥
    let iv = CryptoJS.enc.Utf8.parse("0102030405060708");   //  矢量
    let baseResult=CryptoJS.enc.Base64.parse(data);   // Base64解密
    let ciphertext=CryptoJS.enc.Base64.stringify(baseResult);     // Base64解密
    let decryptResult = CryptoJS.AES.decrypt(ciphertext,key, {    //  AES解密
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    return CryptoJS.enc.Utf8.stringify(decryptResult)
}
